import { cloneDeep } from 'lodash'

const toTree = (node, pId = 'pId', id = 'id') => {
    const data = cloneDeep(node)
    const result = []
    if (!Array.isArray(data)) {
        return result
    }
    data.forEach(item => {
        delete item.children
    })
    const map = {}
    data.forEach(item => {
        map[item[id]] = item
    })
    data.forEach(item => {
        const parent = map[item[pId]]
        if (parent) {
            (parent.children || (parent.children = [])).push(item)
        } else {
            result.push(item)
        }
    })
    return result
}

export default toTree
